#include <stdio.h>


int func_1(int num_1 , int num_2);
int func_2(int num_1 , int num_2);
int func_3(int num_1 , int num_2);
int func_4(int num_1 , int num_2);

typedef struct stu
{
    // 对象数据
    int num_1;
    int num_2;
    // 对象操作
    int (*func[4])(int num_1 , int num_2);
}stu;


// 结构体初始化
void stu_init(stu * stu1)
{
    stu1->num_1 = 0;
    stu1->num_2 = 0;

    stu1->func[0] = func_1;
    stu1->func[1] = func_2;
    stu1->func[2] = func_3;
    stu1->func[3] = func_4;
}

int main(int argc, char const *argv[])
{
    // 声明一个结构体
    stu stu1;
    stu_init(&stu1);

    stu1.func[0](50 , 30);
    return 0;
}

int func_1(int num_1 , int num_2)
{
    printf("%d + %d = %d\n" , num_1 , num_2 , num_1 + num_2);
}
int func_2(int num_1 , int num_2)
{
    printf("%d - %d = %d\n" , num_1 , num_2 , num_1 - num_2);
}
int func_3(int num_1 , int num_2)
{
    printf("%d * %d = %d\n" , num_1 , num_2 , num_1 * num_2);
}
int func_4(int num_1 , int num_2)
{
    printf("%d / %d = %d\n" , num_1 , num_2 , num_1 / num_2);
}

